package com.itjin.health.domain.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 用户全面信息视图对象
 */
@Data
@ApiModel(description = "用户全面信息")
public class UserComprehensiveInfoVO implements Serializable {

  private static final long serialVersionUID = 1L;

  // 基本信息
  @ApiModelProperty("用户ID")
  private Integer id;

  @ApiModelProperty("用户名")
  private String username;

  @ApiModelProperty("真实姓名")
  private String realName;

  @ApiModelProperty("邮箱")
  private String email;

  @ApiModelProperty("手机号")
  private String phone;

  @ApiModelProperty("头像")
  private String avatar;

  @ApiModelProperty("性别")
  private Integer gender;

  @ApiModelProperty("年龄")
  private Integer age;

  @ApiModelProperty("身高(cm)")
  private Double height;

  @ApiModelProperty("体重(kg)")
  private Double weight;

  @ApiModelProperty("用户角色")
  private String role;

  @ApiModelProperty("注册时间")
  private Date createTime;

  // 统计信息
  @ApiModelProperty("伤病报告总数")
  private Integer injuryReportCount;

  @ApiModelProperty("康复计划总数")
  private Integer rehabilitationPlanCount;

  @ApiModelProperty("进行中的康复计划数")
  private Integer ongoingRehabilitationPlanCount;

  @ApiModelProperty("已完成的康复计划数")
  private Integer completedRehabilitationPlanCount;

  @ApiModelProperty("康复评估总数")
  private Integer assessmentCount;

  @ApiModelProperty("健康目标总数")
  private Integer healthGoalCount;

  @ApiModelProperty("运动记录总数")
  private Integer exerciseRecordCount;

  // 最近的伤病报告
  @ApiModelProperty("最近的伤病报告")
  private List<InjuryReportVO> recentInjuryReports;

  // 最近的康复计划
  @ApiModelProperty("最近的康复计划")
  private List<RehabilitationPlanVO> recentRehabilitationPlans;
}